Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 4 Das Klassendesign (Teil 1)
  gp 4.1 Einführung in die Objektorientierung
    gp 4.1.1 Das objektorientierte Paradigma
    gp 4.1.2 Vorteile der objektorientierten Programmierung
    gp 4.1.3 Zusammenfassung
  gp 4.2 Die Klassendefinition
    gp 4.2.1 Die Deklaration von Objektvariablen
    gp 4.2.2 Zugriffsmodifizierer einer Klasse
    gp 4.2.3 Der Projekttyp »Klassenbibliothek«
    gp 4.2.4 Splitten einer Klassendefinition mit »Partial«
    gp 4.2.5 Zusammenfassung
  gp 4.3 Objektmethoden
    gp 4.3.1 Methoden mit Rückgabewert
    gp 4.3.2 Methoden ohne Rückgabewert
    gp 4.3.3 Der Aufruf einer Methode
    gp 4.3.4 Methoden mit Parameterliste
    gp 4.3.5 Rückgabewert einer Methode
    gp 4.3.6 Variablen in einer Methode
    gp 4.3.7 Zugriffsmodifizierer einer Methode
    gp 4.3.8 Referenz- und Wertparameter
    gp 4.3.9 Parameter, die Objektreferenzen erwarten
    gp 4.3.10 Methodenüberladung
    gp 4.3.11 Optionale Parameter
    gp 4.3.12 Zusammenfassung
  gp 4.4 Objekteigenschaften
    gp 4.4.1 Ergänzung der Klasse »Circle«
    gp 4.4.2 Lese- und schreibgeschützte Eigenschaften
    gp 4.4.3 Die Parameterliste einer Property-Prozedur
    gp 4.4.4 Standardeigenschaften
    gp 4.4.5 Das With ... End With-Statement
    gp 4.4.6 Konstanten mit »Const« und »ReadOnly«
    gp 4.4.7 Der Zugriff auf private Daten
    gp 4.4.8 Zusammenfassung
  gp 4.5 Konstruktoren
    gp 4.5.1 Die Konstruktoren in der Klasse »Circle«
    gp 4.5.2 Die Konstruktoraufrufe
    gp 4.5.3 Definition von Konstruktoren
    gp 4.5.4 »Friend«-Konstruktoren
    gp 4.5.5 »Private«-Konstruktoren
    gp 4.5.6 Konstruktorverkettung
    gp 4.5.7 Zusammenfassung
  gp 4.6 Der Destruktor
    gp 4.6.1 Das Zerstören von Objekten
    gp 4.6.2 Der Garbage Collector
    gp 4.6.3 Zusammenfassung
  gp 4.7 Arbeiten mit Objektreferenzen
    gp 4.7.1 Prüfen auf Initialisierung
    gp 4.7.2 Mehrere Referenzen auf ein Objekt
    gp 4.7.3 Typfeststellung einer Objektreferenz
    gp 4.7.4 Zusammenfassung


Galileo Computing

4.2 Die Klassendefinition  downtop

Eine Klasse ist die grundlegende Einheit der objektorientierten Programmierung und dient dazu, einen Datentyp zu definieren. Wir wollen uns daher zunächst diesem Thema widmen.

Ein Wort zum Typ »Module«

Starten Sie ein neues Projekt vom Typ »Konsolenanwendung«, ist zunächst ein Modul vordefiniert. Ein Modul gibt es in anderen .NET-Programmiersprachen nicht und ist somit einmalig. Es handelt sich hierbei um eine Struktur, die an die Module der alten Visual Basic-Versionen bis 6.0 angelehnt ist. Da .NET wirklich zu 100  % objektorientiert ist, verbirgt sich hinter einem Modul auch eine Klassendefinition, auch wenn es im ersten Moment nicht sofort offensichtlich ist. Ein Modul ist nichts weiter als eine abstrakte Klasse, die ausschließlich gemeinsame (statische) Methoden und Eigenschaften definiert, ohne dies nach außen hin zu zeigen. Wenn Sie mit den Begriffen »abstrakt« und »gemeinsam« noch nichts anzufangen wissen, muss ich Sie auf die folgenden Kapitel 5 und 6 verweisen. Dort werden diese Ausdrücke noch eingehend erklärt. Sie sollten sich jedoch an dieser Stelle schon die folgenden Charakteristika eines Moduls merken:

gp  Ein Modul ist nicht instanzierbar.
gp  Auf die Mitglieder (Eigenschaften und Methoden) eines Moduls kann nur über die Angabe des Modulbezeichners zugegriffen werden.
gp  Ein Modul kann keine überschreibbaren Methoden zur Verfügung stellen.
gp  Module können keine Schnittstellen implementieren.

Das alles lässt sich mit den Ansprüchen von .NET nur schlecht vereinbaren. Sie sollten daher Module so wenig wie möglich einsetzen. Ich werde deshalb auch im weiteren Verlauf des Buches den Einsatz der Module weitestgehend vermeiden und sie nur dann benutzen, wenn es – wie bei einer Konsolenanwendung – von der Entwicklungsumgebung vorgeschlagen wird. Obwohl – durch eine angepasste Klassendefinition wäre auch das »Standardmodul« einer Konsolenanwendung austauschbar.

Hinzufügen einer neuen Klasse

Der Quellcode einer Visual Basic-Anwendung befindet sich in Dateien mit der Dateierweiterung .vb. Üblicherweise entspricht der Dateibezeichner dem Namen der Klasse, aber das ist nicht zwingend notwendig. In einer Quellcodedatei dürfen Sie mehrere Klassen definieren, allerdings ist das bei größeren Projekten nicht sehr übersichtlich.

Möchten Sie die neue Klasse in eine zusätzliche Quellcodedatei implementieren, haben Sie zwei Alternativen:

gp  Sie wählen im Menü Projekt der Entwicklungsumgebung das Untermenü Klasse hinzufügen...
gp  Sie öffnen mit der rechten Maustaste das Kontextmenü des Projekts im Projektmappen-Explorer, wählen Hinzufügen und danach aus der sich anschließend öffnenden Liste Klasse...

Daraufhin öffnet sich das Dialogfenster Neues Element hinzufügen (siehe Abbildung 4.4).

Die Vorlage »Klasse« ist bereits vorselektiert. Sie sollten jetzt nur noch einen möglichst beschreibenden Klassennamen wählen, der auch gleichzeitig zum Namen der Quellcodedatei wird. Wenn Sie wollen, können Sie später sowohl die Klasse als auch die Quellcodedatei umbenennen.

Zur Bezeichnung von Klassen gibt es Konventionen, an denen Sie sich orientieren sollten:

gp  Der Name einer Klasse sollte immer ein Nominativ oder an ein solches angelehnt sein. Der erste Buchstabe sollte großgeschrieben werden. Setzt sich der Name einer Klasse aus mehreren einzelnen Begriffen zusammen, wird empfohlen, zur besseren Lesbarkeit jeden Begriff mit einem Großbuchstaben zu beginnen.
gp  Ein Klassenname sollte nicht dadurch kenntlich gemacht werden, dass ihm ein »C« oder ein anderes Präfix vorangestellt wird, wie es in anderen objektorientierten Sprachen teilweise üblich ist. Generell sollte auch auf einen Unterstrich im Typnamen verzichtet werden.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 4.4     Der Dialog »Neues Element hinzufügen«

Erscheint Ihnen der Name der Quellcodedatei zu einem späteren Zeitpunkt unpassend, können Sie

gp  im Projektmappen-Explorer das Kontextmenü der entsprechenden Datei öffnen, Umbe-nennen wählen und den neuen Namen eingeben oder
gp  im Projektmappen-Explorer die umzubenennende Datei selektieren und im Eigenschaftenfenster unter Dateiname den neuen Namen eintragen.

Nehmen wir an, dass Sie eine Klasse namens Circle entwickeln wollen und für diese eine neue Quellcodedatei vorsehen. Nachdem die Datei hinzugefügt worden ist, wird die folgende Klassenstruktur im Code-Editor angezeigt:


Public Class Circle
End Class


Galileo Computing

4.2.1 Die Deklaration von Objektvariablen  downtop

Eine Klassendefinition beschreibt den Bauplan eines Objekts und gilt als Typdefinition. Um ein Objekt eines bestimmten Typs zu erzeugen, muss zunächst für jedes Objekt eine Objektvariable deklariert werden, beispielsweise:


Dim meinKreis As Circle

Eine Objektvariable verweist auf einen Speicherbereich. Man sagt auch, dass eine Objektvariable ein Objekt referenziert, und spricht bei einer Objektvariablen von einer Objektreferenz oder einfach nur von einer Referenz. Tatsächlich ist unter einer Referenz ein Zeiger auf die Startadresse eines Speicherbereichs zu verstehen, der alle Zustandsdaten – das sind die Eigenschaften, die das Objekt von einem anderen Objekt desselben Typs unterscheidet – beschreibt.

Variablen, die auf ein Objekt verweisen, werden auch als Referenztypen bezeichnet. Im Gegensatz dazu kennt .NET auch die Wertetypen wie beispielsweise Int32 (VB-Alias = Integer) oder Int64 (VB-Alias = Long).

Bei der Deklaration der Objektvariablen meinKreis wird der für das Objekt erforderliche Speicher reserviert, aber ein konkretes Objekt mit einer Zustandsausprägung durch Eigenschaften existiert schlichtweg noch nicht – die Objektvariable ist noch nicht initialisiert.

Zur Initialisierung einer Objektvariablen bieten sich zwei gleichwertige Alternativen an:

gp  die zweizeilige Variante:
Dim meinKreis As Circle
meinKreis = New Circle
gp  die verkürzte, einzeilige Schreibweise:
Dim meinKreis As Circle = New Circle
bzw.
Dim meinKreis As New Circle

Beide weisen ein gemeinsames Merkmal auf: den Operator New, der für die Konkretisierung eines Objekts verantwortlich ist. Erst mit New beginnt der Lebenslauf eines Objekts, denn nun wird eine besondere Methode der Klasse aufgerufen: der Konstruktor; in diesem Fall der parameterlose Standardkonstruktor. Mehr über den Konstruktor erfahren Sie weiter unten in diesem Kapitel.


Galileo Computing

4.2.2 Zugriffsmodifizierer einer Klasse  downtop

Entwickeln Sie eine neue Klasse, müssen Sie einem Umstand besondere Beachtung schenken: Entwerfen Sie die Klasse, um sie ausschließlich in der Anwendung zu verwenden, in der die Klasse definiert ist, oder beabsichtigen Sie, die Klasse auch anderen Anwendungen zur Verfügung zu stellen? Diese Sichtbarkeit wird durch Zugriffsmodifizierer beschrieben. Bei Klassen spielen nur zwei eine Rolle: Public und Friend.


Tabelle 4.1     Die Zugriffsmodifizierer einer Klasse

Modifizierer Beschreibung
Public Die Instanziierbarkeit einer öffentlichen Klasse unterliegt keinerlei Beschränkungen. Die Klasse kann dann aus jeder beliebigen Anwendung heraus instanziiert werden.
Friend Beabsichtigen Sie, die Sichtbarkeit einer Klasse auf die Anwendung zu beschränken, in der die Klasse definiert ist, müssen Sie die Klasse Friend deklarieren. Aus einer anderen Anwendung heraus kann dann auch kein Objekt dieser Klasse erzeugt werden.

Die Angabe des Zugriffsmodifizierers ist optional. Verzichten Sie darauf, gilt die Klasse als Friend.


Galileo Computing

4.2.3 Der Projekttyp »Klassenbibliothek«  downtop

Wir wollen nun die Auswirkungen der beiden Modifizierer Public und Friend an einem praktischen Beispiel erleben. Dabei werden Sie gleichzeitig mit zwei neuen Aspekten der Anwendungsentwicklung unter.NET vertraut gemacht:

gp  mit dem Projekttyp Klassenbibliothek
gp  mit dem Zugriff auf eine externe Assembly

Eine Klassenbibliothek wird zu einer DLL-Datei kompiliert und ist somit auch nicht eigenstartfähig. Versuchen Sie dennoch, das Projekt aus der Entwicklungsumgebung heraus zu starten, erhalten Sie eine Fehlermeldung. Sie können jedoch weiterhin über das Menü Erstellen kompilieren.


Anmerkung

Stellen Sie während der Entwicklungszeit fest, dass Sie sich für den falschen Projekttyp entschieden haben, können Sie diesen im Projekteigenschaftsfenster nachträglich ändern. Doppelklicken Sie dazu den Knoten My Project im Projektmappen-Explorer, und wählen Sie im sich öffnenden Dialog die Einstellung Anwendung. Stellen Sie danach im Listenfeld Anwendungstyp den gewünschten Projekttyp ein.


Der Code des folgenden Beispiels gehört zu einer Klassenbibliothek und beschreibt die Klassen ClassA, ClassB und ClassC. Klasse ClassA ist Public deklariert und sollte daher auch in anderen Anwendungen sichtbar und folglich instanziierbar sein. Der Zugriffsmodifizierer von ClassB ist Friend. Bisher war es nur möglich, eine Klassendefinition in einer Quellcodedatei zu implementieren, während ClassC auf jeglichen Zugriffsmodifizierer verzichtet.


' --------------------------------------------------------------
' Beispiele: ...\Kapitel 4\LibraryDemo\MyClassLib
' --------------------------------------------------------------
Public Class ClassA
Public PropA As Integer = 10
End Class
Friend Class ClassB
Public PropB As Long = 20
End Class
Class ClassC
Public str As String = "Hallo"
End Class

Nach dem Kompilieren wird die DLL-Datei im Unterverzeichnis \bin\Debug des Projektverzeichnisses gespeichert.

Eine Klassenbibliothek dient dazu, anderen Anwendungen den Zugriff auf die öffentlichen Typen (= Klassen) zu ermöglichen. Das wollen wir nun durch eine Konsolenanwendung simulieren. Dazu bieten sich zwei Alternativen an:

gp  Sie öffnen ein neues Projekt in der Entwicklungsumgebung. Das erste Projekt (MyClassLib) wird dabei geschlossen.
gp  Sie fügen der Entwicklungsumgebung ein zweites Projekt hinzu. Das erste Projekt bleibt dabei geöffnet und kann sogar weiter bearbeitet werden.

Die erstgenannte Methode ist sehr einfach, daher wollen wir uns der zweiten zuwenden, bei der wir zudem tiefer gehende Kenntnisse zur Entwicklung komplexerer Anwendungen mit dem Visual Studio erlangen.

Mehrere Projekte in einer Projektmappe verwalten

Bisher haben wir in der Entwicklungsumgebung immer nur mit einem Projekt gearbeitet. Das Visual Studio ermöglicht aber auch, mehrere Projekte gleichzeitig parallel zu bearbeiten. Verwaltet werden die einzelnen Projekte in einer Projektmappe, die damit die Aufgabe eines Containers innehat. Das Visual Studio generiert beim Erstellen eines neuen Projekts eine Projektmappe, die anschließend um praktisch beliebig viele, auch unterschiedliche Projekttypen erweitert werden kann. Damit erübrigt sich das mehrfache Öffnen des Visual Studios, wenn an mehreren Projekten gearbeitet werden soll. Die von einer Projektmappe verwalteten Projekte können, müssen aber nicht zwangsläufig in einem logischen Zusammenhang stehen.

Auch Projektmappen haben einen Bezeichner. Dieser wird vergeben, sobald Sie die Entwicklungsumgebung starten und ein neues Projekt erstellen. Der Standardbezeichner einer Projektmappe ist der des ersten Projekts, sollte allerdings insbesondere dann einen spezifischen Namen bekommen, wenn Sie wissen, dass Sie im Laufe der Entwicklungstätigkeit mindestens noch ein weiteres Projekt hinzufügen wollen. Im Dialog Neues Projekt können Sie die entsprechenden Einstellungen vornehmen. In Abbildung 4.5 ist zu erkennen, dass die Wahl auf ein Projekt des Typs Klassenbibliothek gefallen ist, der Bezeichner des Projekts lautet MyClassLib und der der Projektmappe LibraryDemo.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 4.5     Anlegen einer Projektmappe

Um die Entwicklungsumgebung um ein weiteres Projekt zu ergänzen, müssen Sie im Projektmappen-Explorer den Knoten der Projektmappe markieren, dessen Kontextmenü öffnen und Hinzufügen Neues Projekt... auswählen. Zur Auswahl stehen alle möglichen Projekttypen. Wir wollen unsere oben begonnene Klassenbibliothek testen, deshalb fällt die Wahl auf die Konsolenanwendung. Der Name des neuen Projekts sei LibraryTest.

Werfen wir nun einen Blick in den Projektmappen-Explorer. Das zweite Projekt ist jetzt ebenfalls eingetragen. Werden von einer Projektmappe mehrere Projekte verwaltet, kann nur eins davon beim Klicken der Schaltfläche Starten in der Symbolleiste des Visual Studios ausgeführt werden. Es ist immer das, dessen Projektbezeichner fett geschrieben ist. In der Abbildung 4.6 würde es sich demnach um das Projekt MyClassLib, also die Klassenbibliothek handeln. Die Einstellung ist nicht korrekt. Um ein anderes Projekt zum Startprojekt zu erklären, müssen Sie das Kontextmenü des entsprechenden Projekts öffnen und Als Startprojekt festlegen auswählen.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 4.6     Projektmappen-Explorer, der zwei Projekte beherbergt

Physikalisch werden beide Projekte MyClassLib und LibraryTest als Unterordner der Projektmappe LibraryDemo gespeichert. In Letzterer ist eine Datei mit den Dateierweiterung .SLN zu finden, in der die Daten enthalten sind, welche die Projektmappe definieren.

Einbinden einer Klassenbibliothek

Das Projekt LibraryTest soll dazu dienen, die Klassenbibliothek MyClassLib zu testen. Allerdings ist LibraryTest die Existenz von MyClassLib nicht bekannt, wir müssen die Klassenbibliothek zunächst bekannt geben. Dazu dient der Knoten Verweise im Projektmappen-Explorer, den Sie jedoch erst zu Gesicht bekommen, wenn Sie vorher in der Symbolleiste des Projektmappen-Explorers die Schaltfläche Alle Dateien anzeigen angeklickt haben.

Im Kontextmenü des Knotens Verweise wählen Sie Verweis hinzufügen... Daraufhin öffnet sich der in Abbildung 4.7 gezeigte Dialog mit den Registerkarten .NET, COM, Projekte, Durchsuchen und Aktuell. Am einfachsten ist es, Projekte auszuwählen, da in dieser Registerkarte die Projekte der aktuellen Projektmappe aufgeführt sind.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 4.7     Der Dialog »Verweis hinzufügen«

Damit sind der Testanwendung alle notwendigen Informationen bekannt, und es kann der folgende Code geschrieben werden:


' --------------------------------------------------------------
' Beispiele: ...\Kapitel 4\LibraryDemo\LibraryTest
' --------------------------------------------------------------
Module Module1
Sub Main()
' Instanziierung der Klasse ClassA
Dim obj As MyClassLib.ClassA = New MyClassLib.ClassA
' dem Feld 'PropA' einen neuen Wert zuweisen
obj.PropA = 4711
' Ausgabe des Feldes an der Konsole
Console.WriteLine(obj.PropA)
Console.ReadLine()
End Sub
End Module

In Main wird ein Objekt vom Typ ClassA erzeugt. ClassA ist innerhalb des Namespaces MyClassLib definiert. Namespaces dienen dazu, die Eindeutigkeit von Klassennamen zu gewährleisten. Um auf eine Klasse zuzugreifen, muss vor dem Klassenbezeichner der Namespace angegeben werden. Beide werden durch einen Punkt voneinander getrennt.


Dim obj As MyClassLib.ClassA = New MyClassLib.ClassA()

Hätten wir mit


Imports MyClassLib

den Namensbereich der Komponente vorher bekannt gegeben, hätte die Anweisung deutlich kürzer ausfallen können:


Dim obj As ClassA = New ClassA

Zu dem Thema dieses Abschnitts, der Entwicklung einer Klassenbibliothek, sind wir gelangt, weil wir uns von der Wirkungsweise der Zugriffsmodifizierer überzeugen wollten. Wir sehen die Aussagen bestätigt, wenn wir die Liste der Intellisense-Unterstützung hinter der Namespace-Angabe MyClassLib beobachten. Hier wird nur ClassA aufgeführt, jedoch weder die mit Friend deklarierte ClassB noch ClassC, der wir explizit keinen Zugriffsmodifizierer zugestanden haben (siehe Abbildung 4.8).

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 4.8     Intellisense-Unterstützung beim Zugriff auf eine externe Komponente

Die »Klassenansicht«

Wie oben erwähnt, darf jede Quellcodedatei mehrere Klassendefinitionen enthalten. Der Projektmappen-Explorer als Tool zur Verwaltung der projektbezogenen Dateien ist nicht in der Lage, die in einer Datei enthaltenen Klassendefinitionen anzuzeigen. Diese Aufgabe übernimmt die Klassenansicht, die darüber hinaus in einer hierarchischen Struktur alle Klassenmitglieder auflistet.

Die Klassenansicht ist in zwei Teilbereiche gegliedert. Im oberen sind die Typdefinitionen aufgeführt, zu denen nicht nur eine Klasse, sondern beispielsweise auch Strukturen, Enumerationen, Schnittstellen usw. gerechnet werden. Detailinformationen zu einer markierten Typdefinition werden im unteren Teilbereich angezeigt. In Abbildung 4.9 ist das Modul der Konsolenanwendung ausgewählt. Dieses enthält nur die Methode Main.

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 4.9     Die »Klassenansicht« der Beispielanwendung »LibraryTest«


Galileo Computing

4.2.4 Splitten einer Klassendefinition mit »Partial«  downtop

Bisher war es nur möglich, eine Klassendefinition in eine Quellcodedatei zu implementieren. Mit der Einführung des .NET Frameworks 2.0 wird dem Entwickler die Möglichkeit geboten, eine Klassendefinition auf beliebig viele Sourcecode-Dateien aufzuteilen. Die neue Programmiertechnik gestattet es unter anderem, bei großen Klassendefinitionen die Übersicht zu gewährleisten.

Partielle Klassendefinitionen werden durch die Ergänzung des Modifizierers Partial gekennzeichnet. Bei einer partiellen Definition dürfen Sie auf Partial verzichten, müssen es aber nicht. Diese Klasse ist dann gewissermaßen die Ausgangsklasse.

Nehmen wir beispielsweise an, Sie möchten die Klasse ClassA auf die beiden Dateien ClassA1.vb und ClassA2.vb aufteilen. Dann können die Klassendefinitionen wie folgt lauten:


' In der Quellcodedatei 'ClassA1.cs'
' optional kann hier ebenfalls 'Partial' angegeben werden
Public Class ClassA
' Klassendefinition
End Class
' In der Quellcodedatei 'ClassA2.cs'
Partial Public Class ClassA
' Klassendefinition
End Class

Das Aufteilen von Typdefinitionen beschränkt sich nicht nur auf Klassen. Auch auf Strukturen und Interfaces kann Partial angewandt werden. Eine Einschränkung des Gebrauchs partieller Typen müssen Sie jedoch beachten: Alle Klassenfragmente müssen sich in derselben Anwendung, also derselben EXE- oder DLL-Datei und im gleichen Namespace, befinden.


Galileo Computing

4.2.5 Zusammenfassung  toptop

gp  Eine Klasse ist die Bauanleitung für Objekte eines bestimmten Typs. Ein Objekt wird durch Eigenschaften und Methoden beschrieben.
gp  Die Sichtbarkeit einer Klasse wird durch Public und Friend beschrieben. Fehlt die Angabe eines Zugriffsmodifizierers, gilt die Klasse als mit Friend deklariert und ist nur im aktuellen Projekt bekannt.
gp  Objektvariablen werden mit dem Schlüsselwort New initialisiert und haben danach einen definierten Zustand. Bei der Instanziierung mit New wird eine Erstellungsroutine aufgerufen, die als Konstruktor bezeichnet wird.
gp  Klassen-, Struktur- und Interface-Definitionen können sich über mehrere Quellcodedateien verteilen. Das Schlüsselwort Partial führt bei der Kompilierung die gesplittete Klassendefinition zusammen.
 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de